package com.atguigu.exer;

/**
 * @author azzn1400820029
 * @create 2021-12-12 20:02
 */

/*
 * 4. 对象数组题目：
定义类Student，包含三个属性：学号number(int)，年级state(int)，成绩score(int)。
 创建20个学生对象，学号为1到20，年级和成绩都由随机数确定。
问题一：打印出3年级(state值为3）的学生信息。
问题二：使用冒泡排序按学生成绩排序，并遍历所有学生信息

提示：
1) 生成随机数：Math.random()，返回值类型double;
2) 四舍五入取整：Math.round(double d)，返回值类型long。
 *
 *
 *
 *
 */

public class StudentTest {
    public static void main(String[] args) {
        //declare student array 20
        Student[] students = new Student[20];
        for (int i = 0; i < students.length; i++) {
            students[i] = new Student();
            students[i].number = (i + 1);
            students[i].state = (int) (Math.random() * 6 + 1);
            students[i].score = (int) (Math.random() * 101);
        }

        for (Student student : students) {
            System.out.println(student.info());
        }

        // bubble sort student array
        for (int i = 0; i < students.length - 1; i++) {
            for (int i1 = 0; i1 < students.length - 1 - i; i1++) {
                if (students[i1].score > students[i1 + 1].score) {
                    Student temp = students[i1];
                    students[i1] = students[i1 + 1];
                    students[i1 + 1] = temp;
                }
            }
        }

        System.out.println("************************");
        for (Student student : students) {
            System.out.println(student.info());
        }
    }
}

class Student {
    int number;
    int state;
    int score;

    // show student info
    public String info() {
        return "学号：" + number + ",年级：" + state +
                ",成绩：" + score;

    }
}